@RequestBody List students List转化对象出现java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to

通过注解@RequestBody接收ajax提交过来的json数据,list<泛型对象>  @RequestBody List<Student> students ,list转化对象报错

错误信息如下:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.myspringmv.eg.controller.Student,

下面是相关代码:

1.ajax

<script type="text/javascript">  
     function test(){
            var DataAry=[];  
            var data1={"name":"test"};  
            var data2={"name":"张三"};  
            DataAry.push(data1);  
            DataAry.push(data2);    
            var  params =JSON.stringify(DataAry)
            alert(params);
            $.ajax({ 
                type:"POST", 
                url:"http://192.168.31.107:8080/json/student.html", 
                dataType:"text",   
                async : false,
                contentType:"application/json",               
                data:params, 
                success:function(data){ 
                   alert(data)    ;               
                } ,
                error :function(data){ 
                   alert("error");                   
                } 
             }); 
      }
</script>

2. Student.java

public class Student {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
}

3.controller

@RequestMapping(value = "student.html",  method = RequestMethod.POST)
public void Cate(HttpServletResponse response,@RequestBody List<Student> students) throws IOException{
		 for(int i=0;i<students.size();i++){
			Student s=(Student)students.get(i) ;
			 System.out.println("泛型学生姓名:"+s.getName());
		 }

执行 Student s=(Student)students.get(i) ; 语句时会出现错误java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.myspringmv.eg.controller.Student,即list 转化student对象时出错。


查了一些资料,网上有说是不支持复杂的参数(List<对象>),在spring没有更新后续版本,应该确实是这样。

使用的是 Springmvc3.1.2. 所以需要升级springmvc版本。将springmvc3.1.2升级为springmvc4.3.0问题解决。







相关标签:


评论: